Recommending transformations for photography

ABSTRACT

A method, computer program product, and system is described. An aspect of an image is identified. One or more other images are identified based upon, at least in part, the one or more other images including one or more other aspects similar to the identified aspect of the image. One or more image filters associated with the one or more other images, including a first image filter, are identified. The first image filter is applied to the image.

TECHNICAL FIELD

This disclosure relates to photography.

BACKGROUND

Individuals may capture photographs (and/or other images) of varioussubjects in a variety of ways. In certain instances, individuals mayemploy digital cameras in order to capture digital photographs. Digitalphotographs (and/or other digital images) may be edited in various waysusing various types of computing equipment (including digital cameras).Digital photographs (and/or other digital images) may be shared withothers electronically. In certain instances, individuals may applyvarious filters (or transformations) to images, including digitalphotographs (and/or other digital images). A filter may be an physicalobject (e.g., a lens attachment) or an electronic process or applicationby which the appearance of an image (e.g., a photograph) may be alteredfrom the image's un-filtered appearance.

BRIEF SUMMARY OF THE DISCLOSURE

According to one aspect of the disclosure, a computer-implemented methodincludes identifying, by one or more computing devices, acontent-related aspect of a digital image. The method further includesidentifying, by the one or more computing devices, one or more otherdigital images based upon, at least in part, the one or more otherdigital images including one or more other content-related aspectssimilar to the identified content-related aspect of the digital image.The method further includes identifying, by the one or more computingdevices, one or more image filters, including a first image filter,associated with the one or more other digital images. The method furtherincludes applying, by the one or more computing devices, the first imagefilter to the digital image.

According to another aspect of the disclosure, a computer-implementedmethod includes identifying, by one or more computing devices, an aspectof an image. The method further includes identifying, by the one or morecomputing devices, one or more other images based upon, at least inpart, the one or more other images including one or more other aspectssimilar to the identified aspect of the image. The method furtherincludes identifying, by the one or more computing devices, one or moreimage filters, including a first image filter, associated with the oneor more other images. The method further includes applying, by the oneor more computing devices, the first image filter to the image.

One or more of the following features may be included. The aspect of theimage may be associated with the visual content of the image. Applyingthe first image filter to the image may include providing a list ofimage filters including the one or more identified image filters.Applying the first image filter to the image may include receiving aselection of the first image filter from the list of image filters. Themethod may include providing a preview of the effects of the first imagefilter on the image. Identifying the one or more other images may bebased upon, at least in part, one or more indications of popularityassociated with the one or more other images. Identifying the use of theone or more image filters, including the first image filter, on the oneor more other images may include applying heuristic rules to identify anapplication of the one or more image filters. Identifying the use of theone or more image filters, including the first image filter, on the oneor more other images may include identifying an application of acolor-related filter based upon, at least in part, identifying colordata associated with the one or more other images. Identifying the useof the one or more image filters, including the first image filter, onthe one or more other images may include analyzing metadata associatedwith one or more of the one or more other images.

The image may include a view displayed on a viewfinder of a camera. Oneor more of identifying the aspect of the image, identifying the one ormore other images, identifying the use of one or more image filters, andapplying the first image filter to the image may occur in nearreal-time.

According to another aspect of the disclosure, a computer programproduct resides on a computer readable storage medium and has aplurality of instructions stored on it. When executed by a processor,the instructions cause the processor to perform operations includingidentifying an aspect of an image. The operations further includeidentifying one or more other images based upon, at least in part, theone or more other images including one or more other aspects similar tothe identified aspect of the image. The operations further includeidentifying one or more image filters, including a first image filter,associated with the one or more other images. The operations furtherinclude applying the first image filter to the image.

One or more of the following features may be included. The aspect of theimage may be associated with the visual content of the image. Applyingthe first image filter to the image may include providing a list ofimage filters including the one or more identified image filters.Applying the first image filter to the image may include receiving aselection of the first image filter from the list of image filters. Theoperations may include providing a preview of the effects of the firstimage filter on the image. Identifying the one or more other images maybe based upon, at least in part, one or more indications of popularityassociated with the one or more other images. Identifying the use of theone or more image filters, including the first image filter, on the oneor more other images may include applying heuristic rules to identify anapplication of the one or more image filters. Identifying the use of theone or more image filters, including the first image filter, on the oneor more other images may include identifying an application of acolor-related filter based upon, at least in part, identifying colordata associated with the one or more other images. Identifying the useof the one or more image filters, including the first image filter, onthe one or more other images may include analyzing metadata associatedwith one or more of the one or more other images.

The image may include a view displayed on a viewfinder of a camera. Oneor more of identifying the aspect of the image, identifying the one ormore other images, identifying the use of one or more image filters, andapplying the first image filter to the image may occur in nearreal-time.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a transformation recommendation processcoupled to a distributed computing network;

FIG. 2 is a flowchart of a process executed by the transformationrecommendation process of FIG. 1;

FIG. 3 is a diagrammatic view of an implementation of the transformationrecommendation process of FIG. 1.

FIG. 4 is a diagrammatic view of an implementation of the transformationrecommendation process of FIG. 1.

FIG. 5 is a diagrammatic view of a computing system that may execute orbe utilized by the gaming group process of FIG. 1.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Individuals may take photographs using a variety of camera devices. Incertain embodiments, individuals may employ digital cameras to capturedigital photographs. In certain embodiments, such digital cameras may becamera-equipped mobile computing devices such as cell phones or tablets.

In certain embodiments, individuals may utilize a photo application(“PA”) or process to facilitate capturing, editing and/or sharingphotographic images. For example, a camera-equipped cell phone mayinclude a PA that facilitates use of the phone's camera to takepictures. In certain embodiments, a PA may facilitate capture of videoin addition/as an alternative to still photographs. In certainembodiments, a PA may facilitate uploading photographs to remote storagedevices or other remote systems or processes. This may facilitate, forexample, sharing of photographs among groups and individuals. Forexample, a PA may facilitate an individual capturing a digitalphotograph, then uploading the photograph to a social networkingapplication (and/or website and so on). In certain embodiments, a PA mayassociate and/or facilitate associating various metadata withphotographs. For example, an individual may sometimes use a PA toelectronically associate with a photograph a comment regarding thecontent of the photograph. In certain embodiments, associated metadatamay include date and location information, and/or a variety of otherinformation relevant to the photograph, the individual who captured,shared, and/or commented on the photograph, and so on.

As noted above, in certain embodiments, PAs (and/or other applicationsor processes) may facilitate editing images. For example, using a PA anindividual may apply one or more image filters to photographs. Forexample, a PA on a cell phone (or other camera-equipped device) mayfacilitate selecting a particular filter and various associatedparameters to apply to a captured digital photograph. In certainembodiments, using a PA (and/or other processes or applications) anindividual may capture a digital photograph, apply a digital filter (orfilters) to the photograph, and share the altered digital photographwith friends on a social networking (or other) application.

In general, a filter is a physical object, and/or a process orapplication that, when applied to an image, results in a change in theappearance (or other transformation) of that image. It will beunderstood that filters may take a variety of known forms. For example,a filter may be a physical attachment or object interposed between thescene of an image and an image recording device (e.g., a lens accessoryfor a camera, such as a polarizing lens attachment, that alters theoptical path of light associated with an image). In certain embodiments,a filter may be an electronic process or application that approximatesthe effect of a physical filter (and/or other effects) throughmanipulation of digital information associated with an image. In certainembodiments, a filter may be another object, process, or application. Itwill further be understood that applying a filter to an image may affectthe appearance (or other aspects) of the image in various ways. Forexample, application of a filter may result in adjustments to the colorand/or color balance of a photograph, may enhance or reduce the effectof certain types of light, may cause a photograph to display variouseffects (e.g., vignetting, aging, spot-focus, dodging (lightening),burning (darkening), tilt-shifting, and so on), may apply borders,shading or other effects, and so on. Filters may sometimes be applied incombination with various effects. For example, two or more filters maybe applied sequentially in order to produce a certain combined effect ona photo. In certain embodiments, filters may be applied to selectedportions of an image (e.g., particular sets of pixels in a digitalimage) and/or may be applied to an image as a whole.

To facilitate the application of appropriate filters to photographs (andother objectives), a transformation recommendation (“TR”) process may,for example, recommend one or more filters to be applied to a photograph(e.g., a digital photograph) based on a variety of criteria. In certainembodiments, a TR process may identify similarities between a targetphotograph (or “photo”) and one or more reference photos. (It will beunderstood that although example TR process functionality may bedescribed below in contexts relating to photography, a TR process mayalso suitably be applied to various other image types.) For example, aTR process may identify similarities in the content of a target imageand the content of various reference photos. For example, a TR processmay identify particular objects, scenery, patterns, colors, and so onthat are similar between a reference photo and a target photo. Incertain embodiments, a TR process may identify a main object in a targetphoto and may identify reference photos also containing a similar mainobject. In certain embodiments, a TR process may identify othersimilarities between target and reference photos (e.g., date, time,author, location, camera-equipped device used to capture the photo, andso on). In certain embodiments, a TR process may identify referencephotos that have a high degree of popularity (e.g., have been viewedoften, frequently commented on or shared, highly rated, and so on).

In certain embodiments, in order to facilitate choosing an appropriatefilter for a target image, a TR process may identify one or more filtersthat have been applied to certain of the identified reference photos(i.e., those photos that have been identified has sharing certainsimilarities with the target photo). For example, a TR process mayidentify particular filters have been applied to particular referenceimages using metadata, color analysis, and/or other known techniques. ATR process may then recommend for and/or apply to a target image theparticular filters that were identified as having been applied to theidentified reference images. In certain embodiments, this may be useful,for example, because filters that have been widely, popularly, and/orsuccessfully applied to certain reference images may be well-suited forapplication to similar target images (e.g., target images with similarcontent, composition, and so on as the reference images).

As will also be discussed below, a TR process may be implemented in avariety of ways. For example, a TR process may be implemented as part of(or in conjunction with) a PA. In certain embodiments, a TR process maybe implemented as part of (or in conjunction with) an image-editingprogram or program suite, a social networking application, and/or acommunication application (e.g., an application facilitating exchangesof email, texting, video-chat, and so on). In certain embodiments, a TRprocess may be implemented as part of a mobile computing device such asa cell phone or tablet. In certain embodiments a TR process may beimplemented as part of a camera-equipped device such as a digitalcamera, camera-equipped cell phone or tablet, and so on.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a method, system, or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present invention may take the form of a computer program product ona computer-usable storage medium having computer-usable program codeembodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. The computer usable medium may be a computer readable signalmedium or a computer readable storage medium. A computer-usable, orcomputer-readable, storage medium (including a storage device associatedwith a computing device or client electronic device) may be, forexample, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of the computer-readable medium wouldinclude the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device. In thecontext of this document, a computer-usable, or computer-readable,storage medium may be any tangible medium that can contain, or store aprogram for use by or in connection with the instruction executionsystem, apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program coded embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language suchas Java, Smalltalk, C++ or the like. However, the computer program codefor carrying out operations of the present invention may also be writtenin conventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The present invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

Referring now to FIG. 1, a TR process may be coupled to a computer orcomputer network. For example, server TR process 10 may reside on andmay be executed by server computer 12, which may be connected to network14 (e.g., the Internet or a local area network). Examples of servercomputer 12 may include, but are not limited to: a personal computer, aserver computer, a series of server computers, a mini computer, and/or amainframe computer. Server computer 12 may be a web server (or a seriesof servers) running a network operating system, examples of which mayinclude but are not limited to: Microsoft® Windows Server®; Novell®Netware®; or Red Hat® Linux®, for example. (Microsoft and Windows areregistered trademarks of Microsoft Corporation in the United States,other countries or both; Novell and NetWare are registered trademarks ofNovell Corporation in the United States, other countries or both; RedHat is a registered trademark of Red Hat Corporation in the UnitedStates, other countries or both; and Linux is a registered trademark ofLinus Torvalds in the United States, other countries or both.)

The instruction sets and subroutines of server TR process 10, which maybe stored on storage device 16 coupled to server computer 12, may beexecuted by one or more processors (not shown) and one or more memoryarchitectures (not shown) incorporated into server computer 12. Storagedevice 16 may include but is not limited to: a hard disk drive; a tapedrive; an optical drive; a RAID array; a random access memory (RAM); anda read-only memory (ROM).

Server computer 12 may execute a web server application, examples ofwhich may include but are not limited to: Microsoft® IIS, Novell® WebServer™, or Apache® Web Server, that allows for access to servercomputer 12 (via network 14) using one or more protocols, examples ofwhich may include but are not limited to HTTP (i.e., HyperText TransferProtocol), SIP (i.e., session initiation protocol), and the Lotus®Sametime® VP protocol. (Webserver is a trademark of Novell Corporationin the United States, other countries, or both; Apache is a registeredtrademark of Apache Software Foundation in the United States, othercountries, or both; Lotus and Sametime are registered trademarks ofInternational Business Machine Corp. in the United States, othercountries, or both.) Network 14 may be connected to one or moresecondary networks (e.g., network 18), examples of which may include butare not limited to: a local area network; a wide area network; or anintranet, for example.

Client TR processes 20, 22, 24, 26 may reside on and may be executed byclient electronic devices 28, 30, 32, and/or 34 (respectively), examplesof which may include but are not limited to personal computer 28, laptopcomputer 30, a data-enabled mobile telephone 32, notebook computer 34,personal digital assistant (not shown), smart phone (not shown) and adedicated network device (not shown), for example. Client electronicdevices 28, 30, 32, 34 may each be coupled to network 14 and/or network18 and may each execute an operating system, examples of which mayinclude but are not limited to Microsoft® Windows®, Microsoft WindowsCE®, Red Hat® Linux®, or a custom operating system.

The instruction sets and subroutines of client TR processes 20, 22, 24,26, which may be stored on storage devices 36, 38, 40, 42 (respectively)coupled to client electronic devices 28, 30, 32, 34 (respectively), maybe executed by one or more processors (not shown) and one or more memoryarchitectures (not shown) incorporated into client electronic devices28, 30, 32, 34 (respectively). Storage devices 36, 38, 40, 42 mayinclude but are not limited to: hard disk drives; tape drives; opticaldrives; RAID arrays; random access memories (RAM); read-only memories(ROM); compact flash (CF) storage devices; secure digital (SD) storagedevices; and memory stick storage devices.

In an embodiment, the TR process may be a server-side process (e.g.,which may be implemented via server TR process 10), in which all of thefunctionality of the TR process may be executed on a server computer(e.g., server computer 12). In an embodiment, the TR process may be aclient-side process (e.g., which may be implemented via one or more ofclient TR processes 20, 22, 24, 26), in which all of the functionalityof the TR process may be executed on a client computing device (e.g.,one or more of client electronic devices 28, 30, 32, 34). In anembodiment, the TR process may be a hybrid server-client process (e.g.,which may be implemented by server TR process 10 and one or more ofclient TR processes 20, 22, 24, 26), in which at least a portion of thefunctionality of the TR process may be implemented via server computer12 and at least a portion of the functionality of the TR process may beimplemented via one or more client computing devices (e.g., one or moreof client electronic devices 28, 30, 32, 34).

A photo application (“PA”) (and/or photo process) may operate on aclient device (e.g., client PA 44, operating on client electronic device28; client PA 46, operating on client electronic device 30; client PA48, operating on client electronic device 32; or client PA 50, operatingon client electronic device 34). A client TR process (e.g., client TRprocess 20) or a server TR process (e.g., server TR process 10) may bein communication and/or interact with a client PA (e.g., client PA 44)or may be part of a client PA. Further, in an embodiment a client TRprocess may include a module and/or component of a client PA. In such anembodiment at least a portion of the functionality of the TR process maybe provided by the client PA.

A PA may additionally or alternatively operate on a server device (e.g.,server PA 52, operating on server computer 12 or another server PA (notshown), operating on another server computer (not shown)). A server TRprocess (e.g., server TR process 10) or a client TR process (e.g.,client TR process 20) may be in communication and/or interact with aserver PA (e.g., server PA 52) or may be a part of a server PA. Further,in an embodiment a server TR process may include a module and/or acomponent of a server PA (or vice versa). In such an embodiment at leasta portion of the functionality of the TR process may be provided by theserver PA (or vice versa).

In addition to functionality generally related to photography and so on,in certain embodiments, a PA may provide (and/or interact with otherapplications or processes providing) social networking applicationfunctionality. For example, a PA may facilitate posting, sharing,commenting on, editing, and so on of photographs through a socialnetworking application (or process). In certain embodiments, PAfunctionality may additionally/alternatively be included within a socialnetworking application (not shown). Additionally/alternatively one ormore of a client (and/or server) PA and/or a client (and/or server) TRprocess may interface and or interact with a social networkingapplication (not shown), which may reside on and/or be executed by, atleast in part, server computer 12 and/or another computing device.

Users 54, 56, 58, 60 may access a TR process in various ways. Forexample, these users may access server TR process 10 directly throughthe device on which a client process (e.g., client TR processes 20, 22,24, 26) is executed, namely client electronic devices 28, 30, 32, 34.Users 54, 56, 58, 60 may access server TR process 10 directly throughnetwork 14 and/or through secondary network 18. Further, server computer12 (i.e., the computer that executes server TR process 10) may beconnected to network 14 through secondary network 18, as illustratedwith phantom link line 62. Users 54, 56, 58, 60 may also access a clientor server PA in similar ways.

The various client electronic devices may be directly or indirectlycoupled to network 14 (or network 18). For example, personal computer 28is shown directly coupled to network 14 via a hardwired networkconnection. Further, notebook computer 34 is shown directly coupled tosecondary network 18 via a hardwired network connection. Laptop computer30 is shown wirelessly coupled to network 14 via wireless communicationchannel 64 established between laptop computer 30 and wireless accesspoint (“WAP”) 66, which is shown directly coupled to network 14. WAP 66may be, for example, an IEEE 802.11a, 802.11b, 802.11g, 802.11n, Wi-Fi,and/or Bluetooth device that is capable of establishing wirelesscommunication channel 64 between laptop computer 30 and WAP 66.Data-enabled mobile telephone 32 is shown wirelessly coupled to network14 via wireless communication channel 68 established betweendata-enabled mobile telephone 32 and cellular network/bridge 70, whichis shown directly coupled to network 14.

As is known in the art, all of the IEEE 802.11x specifications may useEthernet protocol and carrier sense multiple access with collisionavoidance (i.e., CSMA/CA) for path sharing. The various 802.11xspecifications may use phase-shift keying (i.e., PSK) modulation orcomplementary code keying (i.e., CCK) modulation, for example. As isknown in the art, Bluetooth is a telecommunications industryspecification that allows e.g., mobile phones, computers, and personaldigital assistants to be interconnected using a short-range wirelessconnection.

For the following discussion, client TR process 24 will be described forillustrative purposes. It will be understood that client TR process 24may, for example, interact and/or communicate with a server TR processsuch as server TR process 10 and/or may be executed within one or moreapplications that allow for communication with other server and/orclient TR processes. TR process 24 may be utilized as part of or inconjunction with a variety of server and/or client PA applications, suchas client PA 48 or server PA 52. In certain embodiments TR process 24may be utilized as part of or in conjunction with a variety of otherconsumption applications and/or communication applications (not shown),facilitating consumption of content and/or communication amongindividuals and/or groups. This is not intended to be a limitation ofthis disclosure, as other configurations are possible. For example, someimplementations may include one or more of client TR processes 20, 22,26 or server TR process 10 in place of or in addition to client TRprocess 24. Additionally/alternatively, TR process 24 may includestand-alone client processes and/or stand-alone server processes, TRprocess may be utilized as part of or in conjunction with client PA 44,46, 50 or another server PA or other applications (not shown), and soon.

Referring now also to FIG. 2, there is shown a diagrammatic view of anexample process that may be implemented by a TR process, e.g., client TRprocess 24. TR process 24 may identify 200 an aspect of an image. Animage for which an aspect may be identified 200 may be referred toherein as a “target image.” A target image may be accessed in a varietyof known ways. In certain embodiments, a target image may be provided bya PA (e.g., a PA operating on a camera-equipped cell phone, such asdata-enabled mobile telephone 32). For example, an individual maycapture a photo using a PA on camera-equipped cell phone 32 (e.g., PA48) and TR process 24 may utilize the captured photo (and/or a copythereof) as a target image. In certain embodiments, a target image maybe received from various other applications, processes and/orrepositories. For example, TR process 24 may receive a target image froma photo storage repository (e.g., storage device 40), from a socialnetworking or other application (not shown), and so on. In certainembodiments, target images may be stored in the same device on which TRprocess 24 resides (e.g., cell phone 32). In certain embodiments, targetimages may be stored remotely.

An identified 200 aspect may be any variety of aspects relating to theimage and TR process 24 may analyze an image using various knowntechniques to determine various aspects of the image. For example, TRprocess 24 may identify 200 a color curve, color balance, brightness,saturation, geometric characteristic or feature, and so on associatedwith an image. In certain embodiments, TR process 24 may identify 200subject matter or other content-related aspects of an image. Forexample, TR process 24 may identify that a particular image includes alandscape scene, a particular animal, a group of party-goers, a baby, acomposition of geometric shapes, and so on. In certain embodiments, TRprocess 24 may identify various other aspects of the image. For example,TR process 24 may identify 200 location, authorship, time, date, andother information associated with an image.

As also noted above, an identified 200 aspect may be associated withvisual content 202 of the image. For example, using known image-analysistechniques TR process 24 may identify 200 that a particular imageincludes visual content of a certain type such as a particular type ofanimal, a particular type of scene, a particular color curve, colorbalance, focal point, geometric composition, and so on.

TR process 24 may identify 204 a different image than the image forwhich an aspect has been identified 200 (i.e., a different image than atarget image). (Such an identified 204 image may be referred to hereinas a “reference image.”) A reference image may be identified 204 basedupon, at least in part, the reference image including one or moreaspects similar to one or more identified 200 aspects of the targetimage. For example, TR process 24 may identify 204 an image that has asimilar main focus, similar color curve, similar visual content, similartime and date information, and so on, as a target image.

A reference image may reside in and/or be received from a variety oflocations, processes, and/or applications. In certain embodiments, areference image may be provided by a PA (e.g., a PA operating on acamera-equipped cell phone, such as PA 48 on cell phone 32). Forexample, an individual may capture a photo using a PA on a cell phoneand TR process 24 may utilize the captured photo (and/or a copy thereof)as a reference image. In certain embodiments, a reference image may bereceived from various other applications, processes and/or repositories.For example, TR process 20 may receive a reference image from a photostorage repository (e.g., storage device 40), from a social networkingor other application (not shown), and so on. In certain embodiments,identified 204 reference images may be stored in the same device onwhich TR process 24 resides (e.g., cell phone 32). In certainembodiments, identified 204 reference images may be stored remotely.

TR process 24 may identify 204 one or more reference images based uponvarious known analyses, which may facilitate identifying various typesof similarities between the reference image and a target image for whichone or more aspects have been identified 200. For example, TR process 24may identify 200 a target image with particular visual content—e.g., animage with a herd of deer, wherein the image also includes a particularcolor curve exhibiting strong reddish tones and a composition of starkvertical lines (e.g., tree trunks surrounding the deer). TR process 24may then identify 204 one or more reference image exhibiting aparticular similarity to various identified 200 aspects of the targetimage. For example, TR process 24 may identify 204 reference image thatalso include herds of grazing animals (e.g., herds of deer, herds ofantelope, and so on), and/or that also include similar color curvesexhibiting strong reddish tones and/or a composition including starkvertical lines.

In certain embodiments, an image may be identified 204 based upon, atleast in part, indications of popularity 206. For example, it may beuseful to identify 204 reference images that have been highly rated,frequently viewed, frequently commented upon, and so on. For example,such indications of popularity 206 may indicate that the identified 204reference images have been viewed as particular good images (e.g., whichmay result, at least in part, because appropriate filters were appliedto the images). For example, TR process 24 may identify 204 referenceimages that have accumulated more than a certain number of comments,positive ratings and so on through a social networking application.These (and other) factors may indicate, for example, that otherindividuals have enjoyed viewing these identified 204 reference images.In certain embodiments, user preferences and/or input may informidentifying indications of popularity 206. For example, a photographerwho has captured a target image may indicate that she particularlyenjoys the photographs of a number of other individuals (and/or aparticular type of image from a particular individual). As such, TRprocess 24 may determine that, with respect to this particularphotographer, the photographs of the indicated other individuals (andparticularly the particular individual) have high indications ofpopularity 206.

TR process 24 may identify 208 an image filter associated with theidentified 204 reference image. In certain embodiments, TR process 20may identify 208 a filter that has been previously applied to one ormore reference images. As noted above, TR process may facilitatechoosing an appropriate filter (or filters) to apply to a target image.As such, it may be useful to identify 208 a previous application ofvarious filters to similar images (e.g., similar images with highindications of popularity 206). In certain embodiments, an identified208 filter may be a physical filter (e.g., a lens attachment) that wasutilized in capturing a reference image. In certain embodiments, anidentified 208 filter may be an electronic filter (e.g., an electronicprocess or application) that was, for example, utilized to transform areference image after the reference image was captured.

TR process 24 may identify 208 the use of an image filter on anidentified 204 reference image using a variety of known techniques. Incertain embodiments, TR process 24 may identify 208 the use of an imagefilter based upon, at least in part, applying 210 various heuristicrules. For example, in certain embodiments it may be possible toidentify various heuristic analysis rules that may permit determinationof whether a particular filter has been applied to a particular image.For example, application of a vignette filter to an image may result inan image in which the edges of the filtered image are darkened but thecenter of the image remains bright. As such, heuristic rules directedtoward identification of such a darkening pattern may facilitateidentification 208 of the use of a vignette filter. Similarly, forexample, a spot-focus filter may result in a particular region of animage being in focus while the remainder of the image is out of focus.As such, for example, heuristic rules directed toward identification ofsuch sharp and/or blurry regions may facilitate identification 208 ofthe use of a spot-focus filter. Similarly, an image with a deep blue skyand “warmer” (i.e., more red) ground objects may indicate theapplication of a blue-yellow polarizer filter. As such, for example,heuristic rules directed toward identification of deep blue skies andredder ground objects may facilitate identification 208 of the use of ablue-yellow polarizer filter.

In certain embodiments, TR process 24 may identify 208 the use of animage filter based upon, at least in part, identifying 212 color dataassociated with the identified 204 reference image. In certainembodiments, TR process 24 may identify the application of a particularcolor-related filter (and/or filter type) based upon identifying 212such color data. For example, TR process may identify 212 a particularcolor histogram, color profile, preponderance of particular colors, andso on for a reference image. This may indicate, in certain embodiments,for example, that a particular color-related filter has been applied tosuch a reference image. For example, if a color histogram of aparticular reference image is skewed strongly away from red and stronglytowards blue, TR process 24 may identify 212 such a histogram asindicating that one or more color filters was applied to the referenceimage that removed red tones and added and/or enhanced blue tones. Assuch, TR process 24 may identify 208 the use of such a color-relatedfilter based upon identifying 212 the histogram color data.

In certain embodiments, TR process 24 may implement a learning processor algorithm in order to associate particular color curves (e.g.,particular color histograms) with particular subject matter,photographers, locations, times, and so on. For example, TR process 24may determine that color curves associated with highly-rated photographsof camels may exhibit certain general (and/or particular)characteristics. TR process 24 may use such a determination, forexample, to identify 208, as potentially suitable for at target image ofcamels, a filter that adjusts a color curve to exhibit suchcharacteristics.

In certain embodiments, TR process 24 may identify 208 the use of animage filter based upon, at least in part, analyzing 214 metadataassociated with an identified 204 reference image. For example, metadataassociated with an image may indicate where an image was recorded, whorecorded the image, what type of device was used to record the image(e.g., a camera or mobile phone type), individuals who have viewedand/or edited the image, and so on. In certain embodiments, metadataassociated with an identified 204 reference image may indicate otherinformation regarding changes made to the reference image after it wasfirst recorded (and/or a physical filter utilized in capturing thereference image). For example, such metadata may identify a particularimage filter (and/or filter type) that may have been applied to thereference image and/or an order in which multiple image filters (and/orfilter types) may have been applied. As such, for example, it may beuseful for TR process 24 to analyze 214 metadata associated with anidentified 204 reference image to identify 208 the use of an imagefilter on the reference image. (It will be understood that TR process 24may similarly analyze image metadata as part of implementing otherfunctionality such as, for example, identifying 204 an image withaspects that are similar to a target image, identifying 200 an aspect ofa target image, and so on.)

In certain embodiments, TR process 24 may identify 208 an image filterthat may not have been applied to a reference image but which maytransform an aspect of a target image to more closely resemble an aspectof the reference image. For example, continuing the example above, TRprocess 24 may identify 204 various reference images that are similar toa target image in that the target and reference images all include herdsof four-legged animals, a composition of vertical lines, and variouscolors. TR process 24 may further identify various differences betweenthe target and reference images. For example, TR process 24 may compareone or more color curves associated with certain highly rated referenceimages with the color curve of the target image in order to determine,for example, that the target image color curve is skewed more heavilytoward reddish colors than the color curves of the reference images. Incertain embodiments, for example, this may result not from applicationof a particular filter to the reference images but from inherentdifferences between the target image and the reference images (e.g., thequality of the light available when the various images were captured).In this and other embodiments, TR process 24 may, based for example onthe identified differences between the target and reference images,identify 208 a filter that if applied to the target image, may reducethe magnitude of the identified differences and/or increase themagnitude of identified similarities (i.e., may transform the appearanceof the target image to be more similar to the appearance of certainreference images). For example, TR process 24 may determine thatapplying a filter that causes the color curve of the target image ofdeer to skew less heavily toward reddish colors may cause the colorcurve of the target image to more closely match the color curve ofcertain of the highly rated reference images of other herd animals. Assuch, TR process 24 may identify 208 such a filter, associated with thereference images, as appropriate for transformation of the target image.

TR process 24 may apply 216 to a target image an identified 208 imagefilter (e.g., a filter that has been identified 208 as having been usedon an identified 204 reference image). For example, having identified204 aspects of a reference image that are similar to aspects of a targetimage, and having identified 208 the use of a particular filter on thereference image, TR process 24 may recommend applying 216 and/or mayapply 216 the identified 208 filter (i.e., the filter that was appliedto similar reference images) to the target image. In this way, forexample, TR process 24 may facilitate application 216 of appropriatefilters to target images (e.g., application 216 of filters commonlyassociated with images including particular aspects, application 216 offilters commonly associated with highly-rated images includingparticular visual content 202, and so on).

TR process 24 may apply 216 an image filter automatically and/or basedupon various input and/or preferences of a user, administrator, and/orsystem. For example, in certain embodiments, based on a user preference,TR process 24 may automatically apply 216 to a particular target image afilter associated with the most popular identified 204 reference image(i.e., the identified 204 reference image with the strongest indicationsof popularity 206). In certain embodiments, TR process 24 may apply 216only filters from photographers/editors approved by the creator of atarget image (or only filters that have been applied to images approvedby the creator, and so on). In certain embodiments, TR process 24 mayapply 216 filters based on various other preferences and/or inputs.

In certain embodiments, TR process 24 may identify 208 multiple filters(e.g., that have been applied, individually or collectively, to multipleidentified 204 reference images) that potentially may be applied 216 toa target image. In order to determine which (if any) of the multiplefilters to actually apply 216, TR process 24 may provide 218 a list ofthe identified 208 filters to a user (e.g., a user of a device used torecord, edit, or upload a target image, and so on). In such a case, forexample, TR process 24 may receive 220 (e.g., from such a user) aselection of one or more filters from the provided 218 list, and mayapply 216 the selected filters to the target image.

In certain embodiments, TR process 24 may provide 222 a preview of theeffects of a particular image filter (e.g., an image filter identified208 as having been applied to a reference image) on a target image. Forexample, before (and/or after) recording a transformed version of atarget image (e.g., before replacing the target image on a storagedevice with a filtered version of the target image and/or creating acopy of the target image including the effects of the image filter) TRprocess 24 may provide 222 to a user (e.g., the creator of the targetimage) a depiction of the effect of the applied 216 (and/orto-be-applied 216) image filter on the target image. This may, forexample, facilitate a user deciding whether a particular identified 208filter should be applied at all and/or whether particular parametersrelated to the filter (e.g., color curve levels, degree of vignetting,and so on) should be adjusted (e.g., through a user input). In certainembodiments, providing 222 a preview may facilitate a user decidingwhich filter(s) to select from a provided 218 list of image filters.

In certain embodiments, the target image may include a view 224displayed on the viewfinder of a camera device (e.g., a digital camera,digital video-camera, camera-equipped cellular phone, and so on). Forexample, as a user scans a scene in order to identify a subject for aphotograph, the portion of the scene that is currently in view (i.e.,the portion that would be included in an image if an image were capturedby the camera at a particular moment) may be displayed on a viewfinderscreen of the camera device. In order, for example, to provide a previewof how a transformation of such a (potential) image would appear, TRprocess 24 may provide 222 a preview of the effects of one or morefilters on the portion of the scene that is currently in view on theviewfinder. For example, TR process 24 may, continuously or at variousintervals, identify 200 one or more aspects of the scene in theviewfinder (i.e., the target image) and may identify 204 one or moreother (reference) images including aspects similar to the image in theviewfinder screen. TR process 24 may identify 208 one or more particularfilters associated with the identified 204 reference images (e.g., thathave been applied to the reference images) and may select certain ofthose filters (e.g., based upon user input) to be applied 216 to thetarget image (i.e., the image in the camera viewfinder). In this way,for example, a user may view in real time (or quasi-real time) how aparticular image would appear if a particular filter were applied to itbefore (and/or after) actually capturing the particular image (i.e.,before the image represented in the viewfinder is stored in the mainstorage memory of the camera).

It will be understood that in this and other embodiments identifying 204reference images may be accelerated, for example, by creating and/ormaintaining a database in which aspects of various reference images(e.g., various popular images) have been partially or fully categorizedand/or organized for rapid searching. For example, it may be useful tocreate and/or maintain reference image databases organized by identified200 visual content 202, by identified 208 previously-applied imagefilter, by identified 212 color data, and so on. In this way, forexample, TR process 24 may, in certain embodiments, more rapidly and/orefficiently identify 204 reference images and/or identify 208 the use ofparticular filters on particular reference images.

As also noted above, in certain embodiments, various functionality of TRprocess 24 may be executed in real time and/or quasi-real time.(Quasi-real time may indicate, for example, that certain functionalityis executed in such a way that a user perceives little or no lag timeand/or is executed including a time lag that may result from, forexample, network latency, processing time, and so on.) For example, asalso noted above, if the target image is a view 224 on a cameraviewfinder, it may be useful to provide 222 a preview of the effects ofan image filter even before an image is taken using the camera. As such,for example, as a user pans across a scene with the camera, theviewfinder may display, in real time or quasi-real time, what a recordedimage of the current view would look like if a particular image filterwere applied 216. In certain embodiments, such a preview may includerepresentations of the application 216 of multiple identified 208 imagefilters applied 216 individually and/or in combination. For example, ifa list of identified 208 image filters has been provided 218, onequadrant of a viewfinder may display a view with no applied 216 filters,two quadrants of a viewfinder may display a view with two differentfilters applied 216, respectively, and one quadrant of the viewfindermay display a view with both of the two different filter applied 216together. In this way, for example, as a user pans across a scene, TRprocess 24 may continually (and/or near-continually) identify 200aspects of the current view, identify 204 reference images, identify 208image filters that have been applied to the reference images, andprovide 222 a preview of the effects of the various identified 208 imagefilters on the current camera view. As such, for example, TR process 24may facilitate an individual choosing a filter (or filters) andrecording a particular viewfinder view 224 as a digital image with thechosen filter (or filter) applied to the recorded image.

Referring now also to FIG. 3, there is shown a diagrammatic view of animplementation of TR process 24. For example, an individual may havecaptured (e.g., (e.g., stored on a camera-equipped mobile device) image300 of a mountain landscape and may desire to upload the image to asocial networking application so that it may be shared with otherindividuals. In certain embodiments, TR process 24 may have identified208 three possible filters for the image filters based upon identifying200 various aspects of image 300 and identifying 204 similar referenceimages. For example TR process 24 may have identified 200 aspects suchas the target image including a landscape, including mountains, beingover-exposed, being taken near Palermo, Italy, including a river, beingtaken in the late morning in January, including vibrant shades of brownand green, and so on. TR process 24 may also have identified 204 variousreference images with high indications of popularity 206 wherein thereference images also include aspects such as including mountains, beingtaken near Palermo, being taken in the late morning in winter, and soon. TR process 24 may have further identified 208 that many of thesevarious reference images may have been transformed using, for example,Sepia Filters, Polarizers, and Vignette Filters, in variouscombinations.

As such, for example, as part of (and/or a precursor to) uploading thetarget image, TR process 24 may provide window 302 to facilitateselection of one or more particular filters from a provided 218 list ofidentified 208 filters (i.e., Sepia Filter, Polarizer, Vignette Filter)and may receive 220 a selection by a user of one or more of thosefilters. For example, TR process 24 may, via window 302, receive 220 aselection of one or more of the identified 208 filters by the uploadinguser via selection by the user of one or more of action buttons 304,306, and 308. In certain embodiments, TR process 24 may provide 222 apreview of applying 216 a selected filter before the transformationand/or upload of the target image is completed. For example, a user mayselect the Sepia Filter using action button 304 and the Polarizer filterusing action button 306 and TR process 24 may provide 222 a preview ofthe effects of those filters on the image before transforming the imagefile (and/or a copy thereof). In certain embodiments, for example, uponviewing the provided 222 preview, the user may not like the cumulativeeffect of the selected filters, and may accordingly change the selectionbefore uploading. For example, the user may decide to apply the Sepiaand Vignette Filters instead and may accordingly select those filters inwindow 302.

Referring now also to FIG. 4, there is shown a diagrammatic view of animplementation of TR process 24. As noted above, in certain embodiments,TR process 24 may apply 216 an image filter to a view 224 displayed on acamera viewfinder. As also noted above, this may, for example,facilitate providing 222 a quasi-real time preview of the effects of animage filter on an image (and/or potential image) of a particular scene.

TR process 24 may apply 216 an image filter to a viewfinder view 224 invarious ways. For example, in certain embodiments, TR process 24 mayprovide 222 multiple previews on the same viewfinder with respect to thesame view 224. For example, a viewfinder (e.g., viewfinder 400) may bedivided into quadrants 402, 404, 406 and 408 (as indicated for example,by quadrant axes 410 and 412). TR process 24 may identify 200 an aspectof the target image (e.g., that the view 224 includes a pastoral scenefeaturing dairy cows), may identify 204 similar reference images, andmay identify 208 various filters associated with those identified 204reference images. TR process 24 may accordingly utilize window 414 toprovide 218 a list of such identified 208 filters such as spot focus 416and black and white 418 filters. These suggested filters may, forexample, change in quasi-real time as the user pans the camera acrossthe scene and other aspects of the scene and/or other reference imagesare accordingly identified 200, 204.

In certain embodiments, TR process 24 may provide 222 a preview of whatimage would be captured (and/or how a captured image would appear) if aselected filter was applied 216. In certain embodiments, providing 222such a preview may be based upon a user input. For example, via inputwindow 414 a user may indicate that TR process 24 should apply (e.g., asa preview) spot focus filter 416 in quadrant 402, black and white filter418 in quadrant 404, both filters in quadrant 406, and neither filter inquadrant 408 (i.e., provide an unfiltered view in quadrant 408). In thisway, for example, an individual may be able to determine which (if any)filter(s) the individual would like to apply to the image she intends tocapture.

Continuing the example above, when an image is captured, acamera-equipped device may, in certain embodiments, capture only anun-filtered image to which a selected filter may subsequently be applied216. In certain embodiments, a camera-equipped device mayadditionally/alternatively capture a filtered image. For example, incertain embodiments, the camera-equipped device may capture both anunfiltered and a filtered image associated with the same scene (e.g.,the view 224 in viewfinder 400). In certain embodiments, acamera-equipped device may capture only a filtered image (i.e., nounfiltered image may be recorded).

Referring also to FIG. 5, there is shown a diagrammatic view of anexample computing system included in server computer 12. While computingsystem 12 is shown in this figure, this is for illustrative purposesonly and is not intended to be a limitation of this disclosure, as otherconfiguration are possible. For example, any computing device capable ofexecuting, in whole or in part, a TR process (e.g., TR process 10, 20,22, 24, or 26) may be substituted for the computing system 12 withinFIG. 5, examples of which may include but are not limited to clientelectronic devices 28, 30, 32, 34.

Computing system 12 may include microprocessor 550 configured to e.g.,process data and execute instructions/code for group profile process 10.Microprocessor 550 may be coupled to storage device 16. As discussedabove, examples of storage device 16 may include but are not limited to:a hard disk drive; a tape drive; an optical drive; a RAID device; an NASdevice, a Storage Area Network, a random access memory (RAM); aread-only memory (ROM); and all forms of flash memory storage devices.IO controller 552 may be configured to couple microprocessor 550 withvarious devices, such as keyboard 554, mouse 556, USB ports (not shown),and printer ports (not shown). Display adaptor 558 may be configured tocouple display 560 (e.g., a CRT or LCD monitor) with microprocessor 550,while network adapter 562 (e.g., an Ethernet adapter) may be configuredto couple microprocessor 550 to network 14 (e.g., the Internet or alocal area network).

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

A number of embodiments and implementations have been described.Nevertheless, it will be understood that various modifications may bemade. Accordingly, other embodiments and implementations are within thescope of the following claims.

What is claimed is:
 1. computer-implemented method comprising:identifying, by one or more computing devices, a content-related aspectof a captured digital image; identifying, by the one or more computingdevices, one or more other digital images based upon, at least in part,the one or more other digital images including one or more othercontent-related aspects same as or similar to the identifiedcontent-related aspect of the captured digital image; analyzing visualcontent of the one or more other digital images to identify, by the oneor more computing devices, one or more image filters, including a firstimage filter and a second image filter that transformed the one or moreother digital images after capture; providing a list of image filtersincluding the one or more identified image filters; receiving aselection of the first image filter and the second image filter from thelist of image filters; and transforming the captured digital image byapplying, by the one or more computing devices, the first image filterand the second image filter to the captured digital image.
 2. Thecomputer-implemented method of claim 1 wherein identifying the one ormore other digital images is based upon, at least in part, one or moreindications of popularity associated with the one or more other digitalimages.
 3. The computer-implemented method of claim 1 wherein analyzingthe visual content to identify the one or more image filters, includingthe first image filter that transformed the one or more other digitalimages after capture, comprises applying heuristic rules to identifyapplication of the one or more image filters.
 4. Thecomputer-implemented method of claim 1 wherein analyzing the visualcontent of the one or more other digital images to identify one or moreimage filters, including the first image filter that transformed the oneor more other digital images after capture comprises identifyingapplication of a color-related filter based upon, at least in part,identifying color data associated with the one or more other digitalimages.
 5. A computer-implemented method comprising: identifying, by oneor more computing devices, an aspect of a captured image; identifying,by the one or more computing devices, one or more other images basedupon, at least in part, the one or more other images including one ormore other aspects same as or similar to the identified aspect of thecaptured image; analyzing visual content of the one or more other imagesto identify, by the one or more computing devices, one or more imagefilters, including a first image filter and a second image filter thattransformed the one or more other images after capture; providing a listof one or more image filters including the one or more identified imagefilters; receiving a selection of the first image filter and the secondimage filter from the list of one or more image filters; andtransforming the captured image by applying, by the one or morecomputing devices, the first image filter and the second image filter tothe captured image.
 6. The computer-implemented method of claim 5wherein the aspect of the captured image is associated with visualcontent of the captured image.
 7. The computer-implemented method ofclaim 5 wherein the list of image filters includes more one listed imagefilters and further comprising: providing a preview of the capturedimage with representations of effects of the more than one listed imagefilters applied individually on the captured image.
 8. Thecomputer-implemented method of claim 5 wherein identifying the one ormore other images is based upon, at least in part, one or moreindications of popularity associated with the one or more other images.9. The computer-implemented method of claim 5 wherein analyzing thevisual content to identify the one or more image filters, including thefirst image filter that transformed the one or more other image aftercapture comprises applying heuristic rules to identify application ofthe one or more image filters.
 10. The computer-implemented method ofclaim 5 wherein analyzing the visual content of the one or more otherimages to identify one or more image filters, including the first imagefilter that transformed the one or more other image after capturecomprises identifying application of a color-related filter based upon,at least in part, identifying color data associated with the one or moreother images.
 11. The computer-implemented method of claim 5 wherein theimage comprises a view displayed on a viewfinder of a camera.
 12. Acomputer program product residing on a non-transitory computer readablemedium having a plurality of instructions stored thereon, which, whenexecuted by a processor, cause the processor to perform operationscomprising: identifying an aspect of a captured image; identifying oneor more other images based upon, at least in part, the one or more otherimages including one or more other aspects similar to the identifiedaspect of the captured image; analyzing visual content of the one ormore other images to identify one or more image filters, including afirst image filter and a second image filter that transformed the one ormore other images after capture; providing a list of one or more imagefilters including the one or more identified image filters; receiving aselection of the first image filter and the second image filter from thelist of one or more image filters; and transforming the captured imageby applying the first image filter and the second image filter to thecaptured image.
 13. The computer program product of claim 12 wherein theaspect of the image is associated with visual content of the capturedimage.
 14. The computer program product of claim 12 wherein the list ofimage filters includes more one listed image filters and the operationsfurther comprise: providing a preview of the captured image withrepresentations of effects of the more than one listed image filtersapplied individually on the captured image.
 15. The computer programproduct of claim 12 wherein identifying the one or more other images isbased upon, at least in part, one or more indications of popularityassociated with the one or more other images.
 16. The computer programproduct of claim 12 wherein analyzing visual content of the one or moreother images to identify the one or more image filters, including thefirst image filter, comprises applying heuristic rules to identifyapplication of the one or more image filters.
 17. The computer programproduct of claim 12 wherein analyzing visual content to identify the oneor more image filters, including the first image filter that transformedthe one or more other image after capture comprises identifyingapplication of a color-related filter based upon, at least in part,identifying color data associated with the one or more other images.